/** * run the program * * @author Bijan Tajmir * */ public class TestMovie2 { public static void main(String[] args) { Movie2 muppets = new Movie2("The Muppets Take Mahattan",2001,"Columbia Tristar"); Movie2 mulan = new Movie2("Mulan Special Edition",2004,"Disney"); Movie2 shrek = new Movie2("Shrek 2",2004,"Dreamworks"); Movie2 incredibles = new Movie2("The Incredibles",2004,"Pixar"); Movie2 nanny = new Movie2("Nanny McPhee",2006,"Universal"); Movie2 rabbit = new Movie2("The Curse of Were-Rabbit", 2006,"Aardman"); Movie2 iceage = new Movie2("Ice Age",2002,"20th Century Fox"); Movie2 lilo = new Movie2("Lilo & Stitch",2002,"Disney"); Movie2 robots = new Movie2("Robots",2005,"20th Century Fox"); Movie2 monsters = new Movie2("Monsters Inc.",2001,"Pixar"); Movie2[] movies = new Movie2[] {muppets, mulan, shrek, incredibles, nanny, rabbit, iceage, lilo, robots, monsters}; Movie2[] newmovies = new Movie2[movies.length]; System.out.println("Before Sorting:"); printMovies(movies); System.out.println(); System.out.println("Sorted by Title - ascending:"); newmovies = sortTitles(movies,1); printMovies(newmovies); System.out.println(); System.out.println("Sorted by Year - descending:"); newmovies = sortYears(movies,2); printMovies(newmovies); System.out.println(); System.out.println("Sorted by Studios:"); newmovies = sortStudios(movies,1); printMovies(newmovies); } public static void printMovies(Movie2[] a) { for(int i=0;i< a.length;i++) { System.out.println(a[i].toString()); } } public static Movie2[] sortTitles(Movie2[] a, int b) { Movie2[] newlist = new Movie2[a.length]; if(b==1) { for(int i=0;i<a.length;i++) { String next = a[i].getTitle(); int insert = 0; int k =i; while(k>0 && insert == 0) { if(next.compareTo( newlist[k-1].getTitle() ) > 0) { insert = k; } else { newlist[k] = newlist[k-1]; } k--; } newlist[insert]=a[i]; } return newlist; } else if (b==2) { for(int i=0;i<a.length;i++) { String next = a[i].getTitle(); int insert = 0; int k =i; while(k>0 && insert == 0) { if(next.compareTo( newlist[k-1].getTitle() ) < 0) { insert = k; } else { newlist[k] = newlist[k-1]; } k--; } newlist[insert]=a[i]; } return newlist; } else { return newlist; } } public static Movie2[] sortYears(Movie2[] a, int b) { Movie2[] newlist = new Movie2[a.length]; if(b==1) { for(int i=0;i<a.length;i++) { Movie2 next = a[i]; int insert = 0; int k =i; while(k>0 && insert == 0) { if(next.getYear() < newlist[k-1].getYear()) { insert = k; } else { newlist[k] = newlist[k-1]; } k--; } newlist[insert]=next; } return newlist; } else if (b==2) { for(int i=0;i<a.length;i++) { Movie2 next = a[i]; int insert = 0; int k =i; while(k>0 && insert == 0) { if(next.getYear() < newlist[k-1].getYear()) { insert = k; } else { newlist[k] = newlist[k-1]; } k--; } newlist[insert]=a[i]; } return newlist; } else { return newlist; } } public static Movie2[] sortStudios(Movie2[] a, int b) { Movie2[] newlist = new Movie2[a.length]; if(b==1) { for(int i=0;i<a.length;i++) { String next = a[i].getStudio(); int insert = 0; int k =i; while(k>0 && insert == 0) { if(next.compareTo( newlist[k-1].getStudio() ) > 0) { insert = k; } else { newlist[k] = newlist[k-1]; } k--; } newlist[insert]=a[i]; } return newlist; } else if (b==2) { for(int i=0;i<a.length;i++) { String next = a[i].getStudio(); int insert = 0; int k =i; while(k>0 && insert == 0) { if(next.compareTo( newlist[k-1].getStudio() ) < 0) { insert = k; } else { newlist[k] = newlist[k-1]; } k--; } newlist[insert]=a[i]; } return newlist; } else { return newlist; } } }